約 5,558,315 件
https://w.atwiki.jp/appengine/pages/2.html
メニュー トップページ 和訳ドキュメント リンク 逆引きリンク GoogleAppEngine検索RSS 検索 取得中です。 人気トップ10 Google App Engineってなに? index GoogleAppEngine検索RSS リンク 開発者ガイド 過去のニュース 和訳ドキュメント [環境構築] eclipse 導入 逆引きリンク 訪問者数: - 今日: - 昨日: -
https://w.atwiki.jp/appengine/pages/18.html
原文 id hamatsu1974 さんの 翻訳エントリ ※このページは翻訳中です。 This tutorial describes how to develop and deploy a simple project with Google App Engine. The example project, a guest book, demonstrates how to use several App Engine services, including the datastore and the Google user service. This tutorial has the following sections Introduction The Development Environment Hello, World! Using the webapp Framework Using the Users Service Handling Forms With webapp Using the Datastore Using Templates Using Static Files Uploading Your Application
https://w.atwiki.jp/api_programming/pages/250.html
下位ページ get,postを受け取る htmlファイルを表示する ログイン認証 Content Google App Engineの登録 Pycharmの準備 プロジェクトファイルの準備 詰まったところ Google App Engine Python 3 スタンダード環境のドキュメント とりあえず、サーバにアクセスして、「なにか」表示させる。 App Engine スタンダード環境での Python 3 のクイックスタート PythonのFlaskアプリをGoogle App Engineにデプロイしてみた Google App Engineの登録 Pycharmの準備 必須では無い プロジェクトファイルの準備 "hello world!" を表示させるだけのプロジェクト \python-docs-samples-master\appengine\standard_python37\hello_world app.yaml main.py main_test.py requirement.txt Cloud SDK をインストールCloud SDK をダウンロードしてインストールします。 SDK をダウンロードCloud SDK がすでにインストールされている場合は、次のコマンドを実行して更新 gcloud components update 新しいプロジェクトを作成します。新しいプロジェクトを作成 gcloud projects create [YOUR_PROJECT_ID] --set-as-default プロジェクトが作成されたことを確認します gcloud projects describe [YOUR_PROJECT_ID] アプリケーションを作成? gcloud app create --project=[YOUR_PROJECT_ID] App Engine アプリケーションを配置するリージョンを選択東京 asia-northeast1 大阪 asia-northeast2 https //cloud.google.com/appengine/docs/locations?hl=ja 課金を有効にするサンプルアプリを実行しても無料の割り当てを超えることはない。それほどトラフィックが無いから サンプルプロジェクトを持ってくるGitかZIPでダウンロードか。 をダウンロードしてインストールします。 Python 3.7 用の App Engine 拡張機能が含まれる gcloud コンポーネントをインストールします gcloud components install app-engine-Hello World アプリをダウンロードする Python 3.7 用のシンプルな Hello World アプリが用意されています。 このサンプルでは Flask を使用 代わりに使用できるフレームワークとしては、Django、Pyramid、Bottle、web.py などが挙げられます。 サンプルプログラムをローカルで実行 プロジェクト ディレクトリに移動し、依存関係をインストールします。 cd YOUR_PROJECT pip install -r requirements.txt python main.pyこの中でFlaskのモジュールを実行して、ローカルサーバ上で動かす http //localhost 8080 Hello World を App Engine にデプロイして実行するhello_world プロジェクトのディレクトリで次のコマンドを実行 gcloud app deploy --project [YOUR_PROJECT_ID] ブラウザを起動し、http //YOUR_PROJECT_ID.appspot.com にアクセスしてアプリを表示します。次でも立ち上がる gcloud app browse --project=[YOUR_PROJECT_ID] 詰まったところ デプロイしても、サーバでエラー code 500 デプロイにて、エラーメッセージが出ている UnicodeDecodeError ascii codec can t decode byte 0x8e in position 10 ordinal not in range(128) でも、日本語で書いた部分は一切ないし(どこかに全角スペースが紛れ込んでいる、ということもなさそう) デプロイでのエラーは消えないが、どこかのタイミングで解消。わからない。
https://w.atwiki.jp/api_programming/pages/34.html
下位ページ AppEngine AppScript Calendar Charts GAS Sheets API 認証 認証(Oauth 2.0) Content Google関連 APIの使用 初回の承認フロー 保存されている認証情報で承認する GoogleAuthorizationCodeFlow javascriptでのAPI操作事前準備 流れ AppEngine Google Cloud での操作プロジェクトの指定 Google関連 Google Apps Script (GAS) Google App Engine (GAE) Google Calendar, Gmail, ... AppEngine AppScript Calendar Charts GAS Sheets API 認証 認証(Oauth 2.0) #lsd2 APIの使用 Codezine Developer Projectを作成する プロジェクトページでAPIの使用を有効にする client id をもらうリダイレクト先や、javascriptでの呼び出し先(クロスドメインの話のため?) 登録したら ID と シークレットキーをもらう 初回の承認フロー Google デベロッパー アカデミー/ドライブの認証と承認について Google ドライブがユーザーに OAuth ダイアログを表示し、データをリクエストしているアプリケーションを承認するよう求めます。 ユーザーが承認すると、そのユーザーはアプリケーションの URL にリダイレクトされ、URL の code パラメータにある承認コードが提供されます。 アプリケーションが認証情報と引き換えに承認コードを渡します。この情報には、アクセス トークンと有効期間が長いリフレッシュ トークンが含まれます。 アプリケーションが User Info サービスを呼び出して、ID とメールを取得します。ID は有効期間の長いリフレッシュ トークンを保存するためのメイン キーとして使用されます。 アプリケーションが、後でアクセス トークンを取得できるように、リフレッシュ トークンとメールをユーザー ID でインデックス付けして保存します。 Authorization CodeをもらうためのURL 保存されている認証情報で承認する 初回の承認フローが正常に終了した後でユーザーがアプリケーションにアクセスした場合、エンドユーザーにメッセージは表示されません。アプリケーションは、保存されているリフレッシュ トークンを使用してリクエストを承認できます。 アプリは、データベースからリフレッシュ トークンを探し出してサーバー側のセッションに保存できます。アクセス トークンが期限切れになると、このリフレッシュ トークンを再使用して新しいアクセス トークンをリクエストします。 アプリケーションが Google ドライブ ファイルへアクセスすることをユーザーが既に承認している場合の承認フローは、次のようになります ブラウザがアプリケーションの URL にリダイレクトされ、URL の code パラメータにある承認コードが提供されます。 アプリケーションが認証情報と引き合えに承認コードを渡します。ユーザーは既にアクセスを承認しているので、リフレッシュ トークンは返されません。返されるのは、有効期間が短いアクセス トークンのみです。 アプリケーションが User Info サービスを呼び出して、有効期間が長いリフレッシュ トークンを探す場合にマスター キーとして使用するユーザー ID を取得します。 アプリケーションがデータベースからリフレッシュ トークンを取得し、そのトークンをサーバー側のセッションに保存します。リフレッシュ トークンが取り消されたり無効になったりした場合は、これを検出し、適切な措置を取る必要があります。詳しくは、こちらをご覧ください。 GoogleAuthorizationCodeFlow エンドユーザーの証明書を操作、保持する This is designed to simplify the flow in which an end-user authorizes the application to access their protected data, and then the application has access to their data based on an access token and a refresh token to refresh that access token when it expires. ユーザーがすでに証明書を持っているか、チェックする 持っていない場合はnewAuthorizationUrl()で認証ページヘ遷移。ブラウザは、codeパラメータを持たせてリダイレクトページへ。newTokenRequest(String) を使う。 最後は #createAndStoreCredential(TokenResponse, String)で証明書を保管。 http //javadoc.google-api-java-client.googlecode.com/hg-history/0dd03fb10eb0ec8e66259d5a19e712bb274b68bc/1.10.0-beta/jdiff/Google%20API%20Client%20Library%20for%20Java%201.9.0-beta/com/google/api/client/googleapis/auth/oauth2/GoogleAuthorizationCodeFlow.html#newAuthorizationUrl%28%29 http //javadoc.google-api-java-client.googlecode.com/hg/1.16.0-rc/com/google/api/client/googleapis/auth/oauth2/GoogleAuthorizationCodeFlow.Builder.html GAE Servlet google-api-client-1.18.0-rc.jar ○ ○ google-api-client-appengine-1.18.0-rc.jar ○ google-api-client-servlet-1.18.0-rc.jar ○ ○ google-oauth-client-1.18.0-rc.jar ○ ○ google-oauth-client-appengine-1.18.0-rc.jar ○ google-oauth-client-servlet-1.18.0-rc.jar ○ ○ google-http-client-1.18.0-rc.jar ○ ○ google-http-client-appengine-1.18.0-rc.jar ○ commons-logging-1.1.1.jar ○ gson-2.1.jar ○ ○ httpclient-4.0.1.jar ○ httpcore-4.0.1.jar ○ jackson-core-asl-1.9.11.jar ○ ○ jackson-core-2.1.3.jar ○ ○ jdo2-api-2.3-eb.jar ○ ○ jsr305-1.3.9.jar ○ ○ protobuf-java-2.4.1.jar ○ ○ transaction-api-1.1.jar ○ ○ xpp3-1.1.4c.jar ○ ○ javascriptでのAPI操作 Google APIs Client Library for JavaScript (Beta) 事前準備 APIキー、クライアントIDの取得 流れ Google APIs Client Library を読み込む APIキーを使って、認証 ユーザー固有の情報にアクセスする場合はauth認証 使いたいAPIを読み込む AppEngine web.xmlに日本語が混ざっていると、アップロードに失敗 Google Cloud での操作 プロジェクトの指定 何も指定しないとその時点でのデフォルトプロジェクトに対する操作になる。例えば、デプロイとか。 明示的にしていする場合は `--project=[PROJECT]` をつける。 別解:全コマンドでプロジェクトを明示的に指定する
https://w.atwiki.jp/appengine/pages/21.html
http //www.google.co.jp/notebook/public/06849902843144241949/BDSVoIgoQuaOr8rIj#SDSelIwoQ9fTT3bcj 上記のURL上の3つのページを参考にして構築します。 特に、http //daily.profeth.de/2008/04/google-app-engine-eclipse-pydev.html 英語ですが、このページを見れば作成できます。 [便利な点] \ dev_appserver.py 実行するファイルのディレクトリ名)をたたく必要がない。 eclipse上で、作業をおこなえる。 [問題点] Debugができない。(たぶんできるはず) [発生するエラー] pydev debugger warning psyco not available for debugger speedups WARNING 2008-08-05 08 23 17,595 dev_appserver.py] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError No module named PIL (デバック実行時) ...理由がわかり次第、ここに書いていきます。
https://w.atwiki.jp/google/pages/10.html
table of contents(目次) Search(検索)Google Google Map Google translate Google Chrome Videos, games(動画、ゲーム)YouTube Music YouTube Google TV Chromecast Made by Google Device(Googleデバイス製)Pixel smart home Pixel Slate Nest Wifi go-anywhere(どこでも使える)Android OS Wear OS by Google Android Auto Chromebook call,text(通話、テキスト)Gmail Message Google Duo Google Chat always in order(いつも整理整頓)Google photos Google Contacts Google Keep Google Calendar Make your work more efficient(仕事を効率化)Google Docs Google Sheets Google Slides Google Drive develop one's businesses(ビジネスの成長を図る)Google Ads Google AdSense Google My Business Google Analytics Search(検索) Google Capture core information.You can easily find the latest information. コアな情報をキャッチ。最新情報を簡単に探せます。 Google Map You can use GPS navigation, traffic information, transfer information, and find nearby shops. GPS ナビ、交通情報、乗換案内を利用したり、近くのお店を探したりできます。 Google translate Translate audio, scanning, keyboard, and handwritten input into more than 100 languages. 音声、スキャン、キーボード、手書きで入力した内容を 100 以上の言語に翻訳できます。 Google Chrome It is a fast, simple and secure browser for all terminals. あらゆる端末に対応した、高速かつシンプルで安全なブラウザです。 Videos, games(動画、ゲーム) YouTube Music A new music streaming app created from YouTube. YouTube から生まれた、新しい音楽ストリーミング アプリ。 YouTube Find, play, and share your favorite videos and music. お気に入りの動画や音楽を探して、再生、共有できます。 Google TV Enjoy your favorite entertainment with Google. お気に入りのエンターテイメントをGoogle を活用して楽しみましょう。 Chromecast You can cast movies and music from your smartphone to your TV. 映画や音楽などをスマートフォンからテレビにキャストできます。 Made by Google Device(Googleデバイス製) Pixel Google s new smartphones bring. Google の新しいスマートフォンのご紹介。 smart home You can choose from a variety of sizes. さまざまなサイズからお選びいただけます。 Pixel Slate Work and play in a whole new way. 仕事も遊びも、まったく新しい方法で。 Nest Wifi Nest Wifi is a reliable, high-speed Wi-Fi system that covers the entire house.Smooth connectivity will be available in any room. Nest Wifi は家全体をカバーできる信頼性の高い高速 Wi-Fi システムです。どの部屋でもスムーズな接続を利用できるようになります。 go-anywhere(どこでも使える) Android OS evolve day by day Platform 日々進化するプラットフォーム Wear OS by Google Leave it to the clock.Manage fitness information and check for updates. 時計におまかせ。フィットネス情報を管理し最新情報もチェック。 Android Auto Voice control, navigation, and music are available in the car. 音声操作、ナビゲーション、音楽を車内でご利用いただけます。 Chromebook It s an easy-to-use laptop with a long battery life. 電池が長持ちする使いやすいノートパソコンです。 call,text(通話、テキスト) Gmail Google s secure and easy-to-use mail service.Organize your inbox according to category to save time. Google の安全で使いやすいメールサービス。カテゴリごとの分類で受信トレイを整理し、時間を節約できます。 Message A simple messaging app that connects with loved ones. 大切な人とつながれるシンプルなメッセージング アプリ。 Google Duo Simple, high-quality video calls (for Android and iOS). シンプルで高品質なビデオ通話(Android と iOS 対応)。 Google Chat With Google Chat, teams can safely exchange messages. Google Chat を使用すると、チームで安全にメッセージをやり取りできます。 always in order(いつも整理整頓) Google photos Organize all your photos and find them easily. すべての写真を整理し、簡単に探すことができます。 Google Contacts You can manage the addresses and phone numbers of family and friends in one place. 家族や友だちの住所や電話番号を 1 か所で管理できます。 Google Keep Wherever you are, you can record your thoughts as notes, lists, or voice notes. どこにいても、思いついたことをメモ、リスト、音声メモとして記録できます。 Google Calendar You can organize your schedule and event information and share it with important people. 予定やイベント情報を整理して大切な人たちと共有できます。 Make your work more efficient(仕事を効率化) Google Docs You can edit and share all documents wherever you are. どこにいても、すべてのドキュメントを編集、共有できます。 Google Sheets Smart spreadsheets that can be accessed from anywhere. どこからでもアクセスできるスマートなスプレッドシート。 Google Slides Share your story with a presentation that can be created and carried anywhere. 場所を問わずに作成して持ち運べるプレゼンテーションで、ストーリーを伝えましょう。 Google Drive Securely save, access, and share files. ファイルを安全に保存して、アクセス、共有できます。 develop one s businesses(ビジネスの成長を図る) Google Ads You can view ads when users search for your products and services. あなたが提供している商品やサービスについてユーザーが検索したときに、広告を表示できます。 Google AdSense monetize your content through advertising. あなたのコンテンツを広告で収益化しよう。 Google My Business It s a free tool that appeals to users who search Google or map your business. Google 検索やマップで検索したユーザーに、あなたのビジネスをアピールできる無料のツールです。 Google Analytics You can analyze user information across multiple channels. 複数のチャネルを対象にユーザーの情報を分析できます。 End up上へ
https://w.atwiki.jp/fujiyan/pages/57.html
WebコミックLibraryhttp //web-comi.appspot.com/GAE/JとSlim3で作成してみた、各出版社から配信されているWebコミックをまとめて閲覧できるサイトです。只今、実験運用中… 概要 Datastoreの主要なQuotaである「Datastore Read Operations」と「Datastore Small Operations」を節約するために、どのようにMemcacheを活用すればよいか、についての考察です。 月並みな話から まずは、キャッシュの計画については「これが正解だ」というのはありません それがあれば、既にフレームワークとして提供されています… ということで、対象となるWebアプリケーションの特性に応じた、「最適解」としてのキャッシュの計画を考える必要があります。 アクセスされるデータの偏り方 データの更新頻度 更新結果を反映させるまでの猶予がどれだけあるか(リアルタイム性) などなど 例えば、現在ひっそりと実験運用中のWebコミックLibraryhttp //web-comi.appspot.com/に関しては データの更新頻度については、原則、一日数回のクローリングでのみ更新なので、クローリング直後の内容をキャッシュしておけば、毎回Datastoreにアクセスする必要が無い クエリ結果も、「サイトの作品全部」や「作品の作者全員」等、決まりきった検索条件ばかりなので、これもどんどんキャッシュしておけば良い クエリ結果のキャッシュは、(クローリングによる更新も含めて)何らかのModelの更新があった時点で、全てクリアでもいいや そこまでリアルタイム性が要求されるデータでは無いので、万が一、キャッシュの内容が古かったとしても、次のクローリングのタイミングで最新化されれば良い。 といった感じです。 前提 計画にあたり、Google App Engine側での、いくつかの前提を確認しておきましょう。 Eventual Consistency(結果整合性) 参考 najeira Eventual consistencyなクエリ結果のキャッシュ 結果整合性(Eventual Consistency)についての分かりやすいプレゼン資料 - Publickey デフォルトのHigh Replication Datastoreでは「Eventual Consistency」が採用されています。 これは、「更新された内容は、そのうち全ノードに反映される」→「更新直後のクエリでは、直前の更新内容が取得されない可能性がある」ということです。 まぁ、全ノード反映の時間はかなり早いので、「単一のリクエスト処理内で、更新直後にクエリ発行」ぐらいでしか問題にならないかと思います。 とは言え、そのような「更新前の情報によるクエリ結果」が返ってきた場合に、それをキャッシュしてしまうと、キャッシュにヒットする間は古いクエリ結果のまま、ということが発生してしまいます。 上記により「Eventual Consistencyのためにキャッシュが当てにならない」という声もありますが 仮に古い結果でキャッシュされたとしても、いつまでにキャッシュがご破算になって再取得が発生すれば、実運用上問題ないか? を検討して、キャッシュのクリアがそこまでに発生するのが判明すれば、Eventual Consistencyとキャッシュは共存可能です。 「WebコミックLibrary」の例で言えば、「更新が発生したクローリング直後のクエリは古い結果になるかも知れないけど、急ぎのデータでもないし、次のクローリングの際にキャッシュがご破算になるから、その後のクエリで最新化できればいいや」という考えです。 むしろ「そのうちキャッシュがご破算になって、正しい内容で最新化される」までを含めて、Eventual Consistencyであると解釈しましょう。 ということで、クエリ結果のキャッシュについては、この特性を前提にして いつ、クエリ結果をキャッシュすべきか いつ、キャッシュをクリアすべきか を考える必要があります。 Datastore Read OperationsとDatastore Small Operationsのコスト比較 参考 Billing and Budgeting Resources - Google App Engine — Google Developers 「Datastore Read Operations」「Datastore Small Operations」の計算方法は下記の通りです。 Datastore Read Operations「Datastore Entity Fetch Ops」+「Datastore Query Ops」 Datastore Small Operations「Datastore Key Fetch Ops」+「Datastore Id Allocation Ops」 注目は「Datastore Entity Fetch Ops」と「Datastore Key Fetch Ops」ですが、同じクエリでも Query#setKeysOnly()を指定しない場合は、結果件数が「Datastore Entity Fetch Ops」にカウント。Slim3の場合は、ModelQuery#asList()/asIterator()を用いた場合 Query#setKeysOnly()を指定した場合は、結果件数が「Datastore Key Fetch Ops」にカウント。Slim3の場合は、ModelQuery#asKeyList()/asKeyIterator()を用いた場合 という計算になります。 これは、filterでEntity(Slim3ならModel)のプロパティを検索キーにしても同様です。 さて、参考ページに記載されているコストをみると Operation Cost Read 10万回につき、$0.07 Small 10万回につき、$0.01 と、Readに比べてSmallは7分の1のコストになっています。 これらの内容から考察すると、「Keyに紐づくEntityが全てキャッシュされており、KeyさえあればEntityの取得でDatastoreにアクセスする必要が無い」という前提条件があれば、 クエリはQuery#setKeysOnly()を指定してKeyのみを取得したほうが、同じ件数でも低コスト ということになります。 もちろん、Entityが必ずしもキャッシュされているとは限らないので、もしキャッシュに存在しない場合はEntityをDatastoreから取得するためにDatastore Entity Fetch Opsが追加で発生します。 よって、その場合はSmallとRead両方にカウントされてしまいます。 まぁ、キャッシュなので、ミスしたときのペナルティはそれなりに発生してしまうもんです…。 ということで、 キャッシュされる率が高いEntityについては、クエリ結果はQuery#setKeysOnly()を指定してKeyのみ取得し、実際のEntityはキャッシュから取得することで、コストを削減する という方針は有効です。 なお「無料枠内なんでコスト関係ないっす」という方についても、Query#setKeysOnly()をまったく指定しなければ全てのクエリ結果がReadのカウントとなってしまいますが、上記の方針ならばReadとSmallに分散されて過度なReadの増加が抑えられるので、やっぱり有効です。 ここから先の議論は、最初にお話した通り、全てのWebアプリケーションに適用できるわけではありません。 が、概ねのモノには当てはまるかと思います。後は、各アプリケーションに応じてカスタムするのが良いかと。 どこで実装するか 実際のデータ参照先がDatastoreなのかキャッシュなのか、については、データを利用する側からは意識したくないので、通常はDAO層で実装します。 キャッシュ対象の分類 キャッシュ対象は、主に「Entity」「クエリ結果」の2つになります。 Entity(Slim3ならModel)「Datastore Entity Fetch Ops」の節約 クエリ結果クエリ結果のKeyのListをキャッシュします。 「Datastore Query Ops」と、(Query#setKeysOnly()を指定する場合は)「Datastore Key Fetch Ops」の節約 以下、それぞれについて、どのような方針でキャッシュするかを検討します。 なお、実装はSlim3を例としますが、考え方はそれ以外でも変わらないかと。 Entityのキャッシュ Memcacheのキーとしては、DatastoreのKeyそのものを用います。 キャッシュの更新方針は、あまり深く考えずに、 Entityの登録/更新/削除と同時に、キャッシュにも登録/更新/削除 取得時に、最初にキャッシュを参照し、なければDatastoreから取得して、キャッシュに登録 で良いかと。 Daoクラスの拡張 Slim3の場合、通常はDaoBaseをexntedsして、各Modelの具象Daoを定義しますが、 その間にキャッシュをサポートするDao階層を挟みます。 public abstract class CachingDao M extends DaoBase M { @Override public M get(final Key key) { M model = Memcache.get(key); if (model == null) { if (!Memcache.contains(key)) { // キャッシュミス時 model = super.get(key); Memcache.put(key, model); } } return model; } @Override public Key put(M model) { Key key = super.put(model); Memcache.put(key, model); return key; } @Override public void delete(Key key) { super.delete(key); Memcache.delete(key); } } 各Modelの具象クラスは、上記CachingDaoをextendsするようにします。 ModelRefへのアクセスのキャッシング Slim3では、Modelのプロパティの1つとして、他のModelへの参照を表すModelRefクラスがあります。 ModelRefを使った参照では、間接的にDatastoreへのアクセスが発生するので、これもキャッシングの対象とします。 ※以前は、setxxxModelでキャッシュに登録していましたが、これをするとDatastoreと同期がとれなくなるので、止めました @Model(schemaVersion = 1) public class FooModel implements Serializable { .... private ModelRef BarModel barModelRef = new ModelRef BarModel (BarModel.class); public BarModel getBarModel() { Key key = barModelRef.getKey(); if (key == null) { // keyがnullなら、キャッシュ/Datastoreにはアクセスしない return barModelRef.getModel(); } M model = Memcache.get(key); if (model == null) { if (!Memcache.contains(key)) { // キャッシュミス時 model= barModelRef.getModel(); Memcache.put(key, model); } } return model; } .... } 大抵の場合、上記の対応だけでも、かなりDatastoreへのアクセスが減ります。 ※WebコミックLibraryの場合、コレだけでキャッシュヒット率が94%です。つまり、殆どキャッシュです。 クエリ結果のキャッシュ Memcacheのキーとしては、クエリの種類や検索条件を表す文字列を用います。 例えば、「クエリを実行したDAOクラス名+メソッド名+検索キー」等 これは、キャッシュ更新方針が難しい(Entityが更新された場合、キャッシュされたクエリ結果をどうするか等)ので、アプリケーション毎に最適な方針を検討します。 (後日追記予定)
https://w.atwiki.jp/google/pages/11.html
table of contents(目次) table of contents(目次) What is Google Command? Google commandatari breakout Puc-man solitaire tic tac toe zerg rush 斜め or askew 一回転 or Do a barrel roll 再帰 or recursion Google binary Google gravity Google space elgooG Google guitar Google sphere Google underwater epic Google black Google sleeping internet https //www.google.com/teapot What is Google Command? [English] The google command is to put command characters in the search box using google, google chrome. [Japanese] Googleコマンドは、Google、Google chromeを使用して検索ボックスにコマンド文字を入力することです。 Google command atari breakout You can play with "atari breakout." 「ブロック崩し」で遊べる Puc-man You can play with "Pac-Man." 「パックマン」で遊べる solitaire You can play with "solitaire" 「ソリティア」で遊べる tic tac toe You can play with "tic tac toe" 「○☓ゲーム」で遊べる zerg rush You can play with "zerg rush" 「クリック撃退ゲーム」で遊べる 斜め or askew result in a skewed search 検索結果が傾く 一回転 or Do a barrel roll The search results revolve around. 検索結果が一回転する 再帰 or recursion Click did you mean recursion to return to the same screen and loop indefinitely 「もしかして 再帰」をクリックすると、同じ画面に戻り、無限ループする Google binary It s all binary. すべてが二進法になる Google gravity gravitational attachment 重力がつく Google space become weightless 無重力になる elgooG turn everything upside down すべてが反転する Google guitar ギターで遊べる guitar-playable Google sphere The character rotates. 文字が回転する Google underwater become a world of the sea 海の世界になる epic Google grow in size 巨大化する black Google be dyed jet-black 漆黒に染まる sleeping internet The brightness of the screen changes at regular intervals. 一定間隔で画面の明るさが変わる https //www.google.com/teapot The pot will pour the tea. ポットに触るとお茶が注げる up 上へ
https://w.atwiki.jp/sevenlives/pages/1441.html
Python webapp Framework?
https://w.atwiki.jp/gengohouse/pages/168.html
リンク元 kagome タグ:計算機 編集